import type { Recordable } from '@vben/types';

export namespace BaseRoleModel {
  export interface BaseRolePageQuery {
    category?: string; // 角色类别
    type?: string; // 角色类型
    name?: string; // 名称
    code?: string; // 编码
    remarks?: string; // 备注
    state?: boolean; // 状态
    readonly?: boolean; // 内置角色
    createdOrgId?: string; // 创建人组织
  }

  export interface BaseRoleSaveVO {
    category?: string; // 角色类别
    type?: string; // 角色类型
    name?: string; // 名称
    code?: string; // 编码
    remarks?: string; // 备注
    state?: boolean; // 状态
    readonly?: boolean; // 内置角色
    createdOrgId?: string; // 创建人组织
  }

  export interface BaseRoleUpdateVO {
    id: string;
    category?: string; // 角色类别
    type?: string; // 角色类型
    name?: string; // 名称
    code?: string; // 编码
    remarks?: string; // 备注
    state?: boolean; // 状态
    readonly?: boolean; // 内置角色
    createdOrgId?: string; // 创建人组织
  }

  export interface BaseRoleResultVO {
    echoMap?: any;
    id?: string; // ID
    createdBy?: string; // 创建人
    createdTime?: string; // 创建时间
    updatedBy?: string; // 更新人
    updatedTime?: string; // 更新时间
    category?: string; // 角色类别
    type?: string; // 角色类型
    name?: string; // 名称
    code?: string; // 编码
    remarks?: string; // 备注
    state?: boolean; // 状态
    readonly?: boolean; // 内置角色
    createdOrgId?: string; // 创建人组织
  }

  export interface BaseRoleResourceRelSaveVO {
    roleId: string;
    applicationResourceMap: Recordable;
  }

  export interface RoleEmployeeSaveVO {
    flag: boolean;
    roleId: string;
    employeeIdList: string[];
  }
}
